A. Field of the Invention
The present invention relates to scanning systems which "read" indicia, for example, barcode symbols, having parts with different light reflectivities and, in particular, to control circuitry which enables such scanning systems to adaptively alter a light beam pattern in response to feedback signals.
B. Description of the Related Art
Various optical readers and optical scanning systems have previously been developed for reading barcode symbols appearing on a label, or on the surface of an article. The barcode symbol itself is a coded pattern of indicia. Generally, scanning systems electro-optically transform the graphic indicia of the symbols into electrical signals which are decoded into alphanumeric characters. The resulting characters describe the article and/or some characteristic of the article to which the symbol is attached. Such characters typically comprise input data to a data processing system for applications in point-of-sale processing, inventory control, and the like.
As used in this specification and in the following claims, the terms "symbol," "barcode," and "barcode symbol" are used to denote a pattern of variable-width bars separated by variable-width spaces. The foregoing terms are intended to be broadly construed to cover many specific forms of one- and two-dimensional patterns including alpha-numeric characters, as well as, bars and spaces.
The specific arrangement of bars or elements in a symbol defines the character represented according to a set of rules and definitions specified by the code. This is called the "symbology" of the code. The relative size of the bars and spaces is determined by the type of code used, as is the actual size of the bars and spaces. The number of characters per inch represented by the barcode symbol is referred to as the density of the symbol.
To encode a desired sequence of characters, a collection of element arrangements are concatenated together to form the complete symbol, with each character being represented by its own corresponding group of elements. In some symbologies, a unique "start" and "stop" character is used to indicate where the barcode symbol begins and ends. A number of different barcode symbologies presently exist. These symbologies include one-dimensional codes such as UPC/EAN, Code 39, Code 128, Codabar, and Interleaved 2 of 5.
In order to increase the amount of data that can be represented or stored on a given amount of symbol surface area, several new symbologies have been developed. One new code standard, Code 49, introduced a two-dimensional concept of stacking rows of characters vertically instead of extending symbols bars horizontally. That is, there are several rows of bar and space patterns, instead of one long row. The structure of Code 49 is described in U.S. Pat. No. 4,794,239. Another two-dimensional code structure known as PDF417 is described in U.S. patent application Ser. No. 07/461,881 filed Jan. 5, 1990, commonly assigned to the assignee of the present invention, and hereby incorporated by reference.
Scanning systems have been disclosed, for example, in U.S. Pat. Nos. 4,251,798; 4,369,361; 4,387,297; 4,409,470; 4,760,248; 4,896,026, all of which have been assigned to the assignee of the present invention. As disclosed in some of the above patents, and particularly in U.S. Pat. No. 4,409,470, one existing scanning system comprises a hand-held, portable laser scanning head. The hand-held scanning system is configured to allow a user to manually aim a light beam emanating from the head at a target symbol.
These scanning systems generally include a light source consisting of a gas laser or semiconductor laser. The use of semiconductor devices as the light source in scanning systems is especially desirable because of their small size, low cost and low power requirements. The laser beam is optically manipulated, typically by a focusing optical assembly, to form a beam spot having a certain size at a predetermined target location. Preferably, the cross section of the beam spot at the target location approximates the minimum width between symbol regions of different light reflectivity, i.e., the bars and spaces.
In conventional scanning systems, the light beam is directed by lens or similar optical components along a light path toward a target symbol. The scanner operates by repetitively scanning the light beam in a line or a series of lines across the target symbol by movement of a scanning component such as a mirror disposed in the path of the light beam. The scanning component may sweep the beam spot across the symbol, trace a scan line across and beyond the boundaries of the symbol, and/or scan a predetermined field of view.
Scanning systems also include a sensor or photodetector which functions to detect light reflected or scattered from the symbol. The photodetector or sensor is positioned in the scanner in an optical path so that it has a field of view which extends at least across and slightly beyond the boundaries of the symbol. A portion of the light beam reflected from the symbol is detected and converted into an analog electrical signal.
The analog electrical signal produced by the photodetector is converted by a digitizer circuit in the scanner into a pulse-width modulated digital signal having widths corresponding to the physical widths of the symbol elements. Conventional digitizers include a positive edge detector which sets a "one-shot" circuit having a predetermined time constant, and a negative edge detector which resets the "one-shot" circuit. Some conventional digitizers include circuits for selecting a variable edge detection threshold in an attempt to suppress noise triggered edge detections. Other conventional digitizers incorporate multiple single digitizer circuits in a parallel arrangement to further suppress "false" edge detections caused by noise in the electrical signal. However, each of these conventional digitizer circuits suffers from an unacceptably high rate of edge "falsing" for noisy electrical signals.
The pulse-width modulated digitized signal from the digitizer is decoded, based upon the specific symbology used for the symbol, into a binary data representation of the data encoded in the symbol. The binary data may then be subsequently decoded into the alphanumeric characters represented by the symbol.
The decoding process in conventional scanning systems usually works in the following way. The decoder receives the pulse-width modulated digital signal from the scanner, and an algorithm implemented in software attempts to decode the scan. If the start and stop characters and the characters between them are successfully and completely decoded, the decoding process terminates and an indicator (such as a green light and/or an audible beep) is initiated to inform the user. Otherwise, the decoder receives a next scan, attempts another decode on the scan, and so on, until a completely decoded scan is achieved or no more scans are available.
Overall performance of a scanning system in reading symbols is a function of the optical capabilities of the scanning mechanism in directing a light beam at a target symbol and resolving the reflected light, and a function of the electronic subsystems which convert and process the information contained in the reflected light. A measure of the overall performance of a barcode symbol scanning system is its ability to resolve the narrowest elements of a barcode symbol and its ability to decode symbols located perhaps hundreds of inches away from the scanning system.
One limiting factor in the ability of conventional scanning systems to correctly resolve elements in a barcode symbol is the degree to which conventional digitizers produce false edge detections. As previously mentioned, false edge detections result from noise on the electrical signal representing the received portion of the light beam reflected from the symbol. False edge detections corrupt the pulse-width modulated signal corresponding to the symbol elements, and must be compensated for by rescanning the symbol to obtain a less noisy electrical signal or by employing some form of error detection and correction. Either compensation scheme slows signal processing in the scanning system.
Continuing attempts have been made to design and implement an improved scanning system which has very high overall performance in a wide variety of operational environments. Conventional scanning systems adjust scanning parameters, if at all, on a piecemeal basis. Such adjustments are typically made manually, and often require the intervention of a trained technician. Furthermore, conventional adjustments are made only to a single, independent scanning system parameter such as beam intensity or amplifier gain.
Conventional scanning systems also typically use a preset light beam pattern which takes the form of a repeated linear scan, a standard raster scan, or jittered raster scan. These systems suffer from the disadvantage that laser scanning systems must substantially align light beam pattern scan lines with the rows of a symbol. Although a two-dimensional barcode symbol such as PDF417 allows some deviation in this alignment, the orientation of the scan lines must still be less than a maximum angle relative to the rows of the symbol.
Very fast conventional scanning systems also require the operator to manually align the scan lines with symbol rows, typically by moving the scanning device or the article being scanned in order to improve the chances of reading the symbol. This requirement is particularly impractical where the scanned articles are large or heavy, or in applications where scanning is intended to be automated.
The light beam pattern of a conventional scanning system is usually preset according to an intended mode of scanning. For example, a hand-held scanning system will use an "optimal" handheld light beam pattern. In contrast, a fixed or presentation type scanning system will be preset to a different "optimal" light beam pattern for fixed scanning applications. Since these preset, "mode optimal" light beam patterns can not be easily changed, conventional scanning systems can not be quickly and efficiently switched between scanning modes.
Conventional scanning systems also cannot be efficiently used in applications which require scanning of two or more different symbols. For example, if an article has one-dimensional and two-dimensional symbols attached to it, conventional scanning systems cannot alternatively optimize the light beam pattern to read each symbol efficiently. A series of articles having symbols with different symbologies presents a similar problem to a scanning systems with a preset light beam pattern.
Finally, conventional scanning systems can not be used to "track," or follow a symbol on a moving object.